iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
Mobile Development

Android Studio 30天學習系列 第 20

Android Studio 30天學習-DAY20_SeekBar基本設置練習

  • 分享至 

  • xImage
  •  

SeekBar基本練習

這個元件最常見是在調整音量調整畫面亮度等等可以透過選取拉條來調整狀態的物件。
今天就是要來熟悉這個元件的基本建立方式。

XML程式碼

這邊我建立一個SeekBar元件以及一個TextView,利用這個TextView來顯示SeekBar的拉取狀態值。

  • 參數述說:
    • android:max="":這個是這個SeekBar最大的數值,這邊設定10000是想要連同小數點一起顯示
    • android:progress="":也就是預設數值,一開始進入這個專案時會顯示的初始數值。例如我最大數值10000,我progress設成5000在剛進入專案模擬時就是在50%的位置。
    <SeekBar
        android:id="@+id/seekBar"
        android:layout_width="0dp"
        android:layout_height="30dp"
        app:layout_constraintTop_toBottomOf="@id/Text1"
        app:layout_constraintStart_toStartOf="@id/guideline1"
        app:layout_constraintEnd_toEndOf="@id/guideline2"
        android:max="10000"
        android:progress="0"
        android:secondaryProgress="0"
        tools:ignore="MissingConstraints" />

    <TextView
        android:id="@+id/TextView1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:hint="Now SeekBar Number"
        app:layout_constraintTop_toBottomOf="@id/seekBar"
        app:layout_constraintStart_toStartOf="@id/guideline1"
        app:layout_constraintEnd_toEndOf="@id/guideline2"
        tools:ignore="MissingConstraints" />

Java程式碼

這邊我是寫在副程式上然後再去主程式呼叫。

  • setOnSeekBarChangeListener()當中的幾個方法
    • onProgressChanged():這個是當我們拉取進度條時的內部數值發生變化時會觸發。
    • onStartTrackingTouch():這個是當我們按下SeekBar拉條時會觸發。
    • onStopTrackingTouch():這就是當我們放開SeekBar的時候會觸發。
    private void bindViews() {

        /**
         * SeekBar拉取條並顯示數值,數值範圍從1~100(包含小數點)
         */

        seekbar = findViewById(R.id.seekBar);
        textView = findViewById(R.id.TextView1);
        seekbar.setOnSeekBarChangeListener (new SeekBar.OnSeekBarChangeListener () {

            //Notification that the progress level has changed.
            //當進度條的數值發生變化時...
            @Override
            public void onProgressChanged (SeekBar seekBar, int progress, boolean b) {
                float Float_progress = (float) progress/100;
                textView.setText("選擇"+Float_progress);
            }

            //Notification that the user has started a touch gesture.
            //使用者開始觸碰時...
            @Override
            public void onStartTrackingTouch (SeekBar seekBar) {
                Toast.makeText(context, "按住SeekBar", Toast.LENGTH_SHORT).show();
            }

            //Notification that the user has finished a touch gesture.
            //使用者完成觸碰時...
            @Override
            public void onStopTrackingTouch (SeekBar seekBar) {
                Toast.makeText(context, "放開SeekBar", Toast.LENGTH_SHORT).show();
            }
        });
    }

結果展示圖

  • 剛啟動時
  • 點擊SeekBar
  • 選擇拉條數值
  • 放掉SeekBar選取
  • progress:5000狀態值

以上這幾個狀態截圖展示。

這就是今天做的小小SeekBar基本設置以及理解程式碼。


上一篇
Android Studio 30天學習-DAY19_簡易綜合實作
下一篇
Android Studio 30天學習-DAY21_ProgressBar基本設置
系列文
Android Studio 30天學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言